#ifndef KGTESTLOGDB_H
#define KGTESTLOGDB_H

#include "KpTestInfo.h"

// 考核记录存储支持
// 用考核起始时间作为考核记录的id
class KgTestLogDb
{
public:
    KgTestLogDb(const QString& logDir);

    bool appendHistory(const KpTestInfo& info);

    // 加载考核记录列表
    QVector<KpTestInfo> loadHistoryList() const;

    // 4元组：问题、答题、答案、对错
    using KpTestDetail = std::array<QString, 4>;

    // @dt: 考核开始时间
    QVector<KpTestDetail> loadDetails(const QDateTime& dt) const;

    bool saveDetails(const QDateTime& dt, const QVector<KpTestDetail>& tds);

private:
    // 根据考核起始时间，返回存储考核消息记录的完整文件路径
    QString detailFilePath_(const QDateTime& dt) const;

    QString historyFilePath_() const;

private:
    QString logDir_;
};

#endif // KGTESTLOGDB_H
